package avicti.bdp.dto.org;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Objects;

/**
 * 参股信息
 */

public class EquityInvestmentInfo implements Serializable {
	private static final long serialVersionUID = 1L;
	/**
	 * 参股单位类别（与集团管理关系）
	 */
	@JsonProperty("investeeClassification")
	private String investeeClassification;
	/**
	 * 参股单位的集团单位统一代码（参股单位为集团所属单位）
	 */
	@JsonProperty("groupUnifiedUnitCode")
	private String groupUnifiedUnitCode;
	/**
	 * 参股单位名称
	 */
	@JsonProperty("investeeName")
	private String investeeName;
	/**
	 * 境内境外
	 */
	@JsonProperty("domesticOverseas")
	private String domesticOverseas;
	/**
	 * 参股单位类型
	 */
	@JsonProperty("investeeUnitType")
	private String investeeUnitType;
	/**
	 * 参股比例
	 */
	@JsonProperty("shareholdingRatio")
	private BigDecimal shareholdingRatio;

	/**
	 * 是否集团内
	 */
	@JsonProperty("isGroup")
	private boolean isGroup;
	private java.lang.String invtAmount;

	@JsonIgnore
	public boolean isGroup() {
		return isGroup;
	}

	public void setIsGroup(boolean group) {
		isGroup = group;
	}

	public String getInvtAmount() {
		return invtAmount;
	}

	public void setInvtAmount(String invtAmount) {
		this.invtAmount = invtAmount;
	}

	public String getInvesteeClassification() {
		return investeeClassification;
	}

	public void setInvesteeClassification(String investeeClassification) {
		this.investeeClassification = investeeClassification;
	}

	public String getGroupUnifiedUnitCode() {
		return groupUnifiedUnitCode;
	}

	public void setGroupUnifiedUnitCode(String groupUnifiedUnitCode) {
		this.groupUnifiedUnitCode = groupUnifiedUnitCode;
	}

	public String getInvesteeName() {
		return investeeName;
	}

	public void setInvesteeName(String investeeName) {
		this.investeeName = investeeName;
	}

	public String getDomesticOverseas() {
		return domesticOverseas;
	}

	public void setDomesticOverseas(String domesticOverseas) {
		this.domesticOverseas = domesticOverseas;
	}

	public String getInvesteeUnitType() {
		return investeeUnitType;
	}

	public void setInvesteeUnitType(String investeeUnitType) {
		this.investeeUnitType = investeeUnitType;
	}

	public BigDecimal getShareholdingRatio() {
		return shareholdingRatio;
	}

	public void setShareholdingRatio(BigDecimal shareholdingRatio) {
		this.shareholdingRatio = shareholdingRatio;
	}

	@Override
	public boolean equals(java.lang.Object o) {
		if (this == o) {
			return true;
		}
		if (o == null || getClass() != o.getClass()) {
			return false;
		}
		EquityInvestmentInfo equityInvestmentInfo = (EquityInvestmentInfo) o;
		return Objects.equals(this.investeeClassification, equityInvestmentInfo.investeeClassification) && Objects.equals(this.groupUnifiedUnitCode, equityInvestmentInfo.groupUnifiedUnitCode) && Objects.equals(this.investeeName, equityInvestmentInfo.investeeName) && Objects.equals(this.domesticOverseas, equityInvestmentInfo.domesticOverseas) && Objects.equals(this.investeeUnitType, equityInvestmentInfo.investeeUnitType)
				&& Objects.equals(this.shareholdingRatio, equityInvestmentInfo.shareholdingRatio);
	}

	@Override
	public int hashCode() {
		return Objects.hash(investeeClassification, groupUnifiedUnitCode, investeeName, domesticOverseas, investeeUnitType, shareholdingRatio);
	}

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append("class EquityInvestmentInfo {\n");

		sb.append("    investeeClassification: ").append(toIndentedString(investeeClassification)).append("\n");
		sb.append("    groupUnifiedUnitCode: ").append(toIndentedString(groupUnifiedUnitCode)).append("\n");
		sb.append("    investeeName: ").append(toIndentedString(investeeName)).append("\n");
		sb.append("    domesticOverseas: ").append(toIndentedString(domesticOverseas)).append("\n");
		sb.append("    investeeUnitType: ").append(toIndentedString(investeeUnitType)).append("\n");
		sb.append("    shareholdingRatio: ").append(toIndentedString(shareholdingRatio)).append("\n");
		sb.append("}");
		return sb.toString();
	}

	/**
	 * Convert the given object to string with each line indented by 4 spaces
	 * (except the first line).
	 */
	private String toIndentedString(java.lang.Object o) {
		if (o == null) {
			return "null";
		}
		return o.toString().replace("\n", "\n    ");
	}

}
